package com.autumn.platform.core.context.track;

import com.autumn.platform.core.Defaults;

@Defaults.Lookup
public interface ITracker {

    /**
     * 开始跟踪
     */
    public void start();

    /**
     * 使用传入的跟踪号开始跟踪
     * 
     * @param trackId 跟踪号
     */
    public void start(String trackId);

    /**
     * 是否正在跟踪
     * 
     * @return 是否正在跟踪
     */
    public boolean isTracking();

    /**
     * 获取当前跟踪号
     * 
     * @return 当前跟踪号
     */
    public String getCurrentTrackId();

    /**
     * 附加当前trackId
     * 
     * @param src
     * @return
     */
    public String appendTrackId(String src);

    /**
     * 停止跟踪
     */
    public void stop();
}
